﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using BussinessLogicTecnoPez.Produccion.FaenamientoEnvasado;
using BussinessLogicTecnoPez.Produccion.Enfermedades_y_control_de_estanques;

public partial class Modules_FaenamientoEnvasado_EjecucionAsignacion : System.Web.UI.Page
{
    private int idAsignacion;

    private DetallePlanFaenamientoEnvasado DetallePlan
    {
        get { return Session["detalleRegistroRealizacionPlan"] as DetallePlanFaenamientoEnvasado; }
        set { Session["detalleRegistroRealizacionPlan"] = value; }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        idAsignacion = Convert.ToInt32(this.Request.QueryString["id"]);

        if (!IsPostBack)
        {
            SetData();
        }
        this.TPPEmpleado.ObjType = typeof(Empleado);
        this.cmdCancelar.OnClientClick = "window.close(); return false;";
    }

    private void SetData()
    {
        if (this.DetallePlan == null || this.DetallePlan.ItemList.Count == 0)
            return;

        foreach (ItemDetallePlanFaenamientoEnvasado objItem in this.DetallePlan.ItemList)
        {
            if (objItem.Asignacion.IdAsignacion == idAsignacion)
            {
                this.lblEmpleadoData.Text = objItem.Empleado.ToString();
                this.lblTareaData.Text = objItem.Tarea.ToString();
                
                this.lblFechaDesdeData.Text = objItem.FechaDesde.ToShortDateString();
                this.lblHoraDesdeData.Text = objItem.FechaDesde.ToShortTimeString();
                this.lblFechaHastaData.Text = objItem.FechaHasta.ToShortDateString();
                this.lblHoraHastaData.Text = objItem.FechaHasta.ToShortTimeString();

                if (objItem.Asignacion.EjecucionDesde != null)
                {
                    TPCFechaInicioReal.Text = objItem.Asignacion.EjecucionDesde.Value.ToShortDateString();
                    txtHoraInicioReal.Text = objItem.Asignacion.EjecucionDesde.Value.ToShortTimeString();
                }
                else
                {
                    //por defecto la fecha planeada
                    TPCFechaInicioReal.Text = objItem.Asignacion.FechaDesde.ToShortDateString();
                    txtHoraInicioReal.Text = objItem.Asignacion.FechaDesde.ToShortTimeString();
                }
                if (objItem.Asignacion.EjecucionHasta != null)
                {
                    TPCFechaFinReal.Text = objItem.Asignacion.EjecucionHasta.Value.ToShortDateString();
                    txtHoraFinReal.Text = objItem.Asignacion.EjecucionHasta.Value.ToShortTimeString();
                }
                else
                {
                    //por defecto la fecha planeada
                    TPCFechaFinReal.Text = objItem.Asignacion.FechaHasta.ToShortDateString();
                    txtHoraFinReal.Text = objItem.Asignacion.FechaHasta.ToShortTimeString();
                }
                if (objItem.Asignacion.EmpleadoEjecuto != null)
                    TPPEmpleado.ItemSelected = objItem.Asignacion.EmpleadoEjecuto;
                else
                    TPPEmpleado.ItemSelected = objItem.Empleado;
                return;
            }
        }
    }
    protected void cmdAceptar_Click(object sender, EventArgs e)
    {
        if (Asignacion.ConcatenarFechaHora(Convert.ToDateTime(TPCFechaInicioReal.Text), txtHoraInicioReal.Text) >= Asignacion.ConcatenarFechaHora(Convert.ToDateTime(TPCFechaFinReal.Text), txtHoraFinReal.Text))
        {
            _lblError.Text = "La fecha de inicio real debe ser menor a la fecha fin real.";
            return;
        }
        if (this.DetallePlan == null || this.DetallePlan.ItemList.Count == 0)
            return;

        foreach (ItemDetallePlanFaenamientoEnvasado objItem in this.DetallePlan.ItemList)
        {
            if (objItem.Asignacion.IdAsignacion == idAsignacion)
            {
                objItem.Asignacion.EmpleadoEjecuto = TPPEmpleado.ItemSelected as Empleado;
                objItem.Asignacion.EjecucionDesde = Asignacion.ConcatenarFechaHora(Convert.ToDateTime(TPCFechaInicioReal.Text), txtHoraInicioReal.Text);
                objItem.Asignacion.EjecucionHasta = Asignacion.ConcatenarFechaHora(Convert.ToDateTime(TPCFechaFinReal.Text), txtHoraFinReal.Text);
                objItem.Asignacion.Observaciones = txtObservaciones.Text;

                this.ClientScript.RegisterClientScriptBlock(this.GetType(), "Asignacion", "window.opener.LoadAsignacion(); window.close();", true);
                return;
            }
        }
        _lblError.Text = "Error inesperado. No se encontro la asignación.";
    }
}
